Blog . Profile . Archive . Email  


مجله کاوش


ایجاد ساختارهای داده ای در ویژوال بیسیک - بخش سوم
مثالی از استفاده از کلاسهای لیست پیوندی :
ابتدا کلاسهایی که در جلسه قبل معرفی شد را به پروژه تان اضافه کنید . سپس در بخش کدنویسی فرمتان ، ابتدا یک شی از نوع کلاس Clist بصورت زیر تعریف کنید :

Dim list as New Clist


در فرمتان سه CommandButton با نامهای AddFirst ، AddLast و ShowList و نیز یک TextBox با نام ListMember قرار دهید .
کد زیر را برای رویداد کلیک شدن دکمه AddFirst بنویسید :

Call list.InsertAtFront(ListMember.text)x


کد زیر را برای رویداد کلیک شدن دکمه AddLast بنویسید :

Call list.InsertAtBack(ListMember.text)x


کد زیر را برای رویداد کلیک شدن دکمه ShowList بنویسید :

Dim elements as New ClistIterator
Set elements=list.Iterator
If elements.HasMoreItems=false then msgbox ("list is empty")x
Else
While elements.HasMoreItems
Msgbox(elements.NextItem)x
Wend
end if



پشته :
پشته نوعی لیست پیوندی است که گره های جدید ، فقط به انتهای آن می توانند اضافه شوند . بهمین دلیل به پشته ، ساختمان داده LIFO می گویند . قسمت لینک آخرین گره پشته با Nothing مقدار دهی می شود که نشان دهنده پایین پشته است .
روالهای اصلی پشته Push و Pop هستند .
Push یک گره جدید به بالای پشته اضافه می کند و Pop از بالای پشته گره ای را حذف کرده و مقدار داده آن را بر می گرداند .

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:11 توسط محمد| |


ایجاد ساختارهای داده ای در ویژوال بیسیک - بخش دوم
لیست پیوندی

همانطور که گفته شد لیست پیوندی مجموعه ای از یکسری داده است که این داده ها از نوع اشیا خودارجاعی هستند . ( هر شی خودارجاعی دارای یک متغیر نوع variant برای نگهدار مقدار و یک اشاره گر به شی بعدی است ) . هر عضو لیست پیوندی را یک گره گویند . هر لیست پیوندی از طریق یک اشاره گر به اولین گره قابل دسترسی است . گره های بعدی از طریق قسمت لینک موجود در هر گره قابل دسترس هستند . همچنین لینک آخرین گره با Nothing تنظیم می شود که انتهای لیست را نشان می دهد .
مزیت اصلی لیست های پیوندی نسبت به آرایه اینست که تعداد عناصر لیست پیوندی قابل تغییر است . بعبارت دیگر لیست های پیوندی بصورت دینامیک هستند و طول آنها قابل تغییر است اما سایز آرایه ثابت است . ( البته ویژوال بیسطک از آرایه های با سایز متغیر نیز پشتیبانی می کند اما این عمل تغییر سایز اتوماتیک نیست .)
عمل درج در لیست پیوندی ساده است و تنها بایستی دو اشاره گر تغییر یابد .
لیست های پیوندی را می توان به سادگی با قراردادن هر عضو جدید در محل صحیح بصورت sortشده نگهداری کرد .
اعضای لیست پیوندی در حافظه بصورت پیوسته ذخیره نمی شوند بنابراین نمی توان فوراً به هر عضو لیست دسترسی داشت ( بر خلاف آرایه ) .
برای ایجاد لیست پیوندی در ویژوال بیسیک نیاز به سه کلاس است :

1 – کلاس ClistNode : کلاسی است که هر گره از لیست را توصیف می کند :

private mNodeData as Variant
private mNextNode as ClistNode
public Property Get Data() as Variant
Data=mNodeData
End Property
Public Property Let Dta(ByVal vNewValue as Variant)x
MNodeData=vNewValue
End Property
Public Property Get NextNode() as ClistNode
Set NextNode=mNextNode
End Property
Public Property Let NextNode(Byval vNewValue as Variant)x
Set mNextNode=vNewValue
End Property



2 – کلاس Clist برای توصیف لیست پیوندی .
mFirstNode برای اشاره به اولین ClistNode و mLastNode برای اشاره به آخرین ClistNode در یک شی clist بکار می رود . زمانیکه یک Clsit ایجاد می شود این دو متغیر با Nothing تنظیم می شوند . روال Property Get Iterator یک شی ClistIterator برمی گرداند که می توان از آن برای حرکت در بین اعضای لیست استفاده کرد .

Private mFirstNode as ClistNode
Private mLastNode as ClistNode
Public Function IsEmpty() as boolean
IsEmpty=IIf(mFirstNode Is Nothing,True,False)x
End function
Public Sub InsertAtFront(insertItem as variant)x
Dim tempNode as ClistNode
If IsEmpty() then
Set mFirstNode=New ClistNode
Set mLastNode=mFirstNode
Else
Set tempNode=mFirstNode
Set mFirstNode=New ClistNode
MFirstNode.NextNode=tempNode
End if
MFirstNode.Data=insertItem
End sub
Public sub InsertAtBack(insertItem as Variant)x
Dim tempNode as ClistNode
If IsEmpty() then
Set mLastNode=New ClistNode
Set mFirstNode=mLastNode
Else
Set tempNode=mLastNode
Set mLastNode=New ClistNode
TempNode.NextNode=mLastNode
End if
MLastNode.Data=insertItem
End sub
Public function RemoveFromFront()x
Dim removeItem as Variant
If IsEmpty() then
Msgbox list is empty
RemoveFromFront=Null
Exit function
End if
RemoveItem=mFirstNode.Data
If mFirstNode Is mLastNode then
Set mFirstNode=Nothing
Set mLastNode=Nothing
Else
Set mFirstNode=mFirstNode.NextNode
End if
RemoveFromFront=removeItem
End function
Public Function RemoveFromBack()x
Dim removeItem as Variant
Dim current as ClistNode
If IsEmpty() then
Msgboc list is empty
RemovefromBack=Null
Exit function
End if
RemoveItem=mLastNode.Data
If mFirstNode Is mLastNode then
Set mFirstNode=nothing
Set mLastNode=Nothing
Else
Set current=mFirstNode
While Not current.NextNode Is mLastNode
Set current=current.NextNode
Wend
Set mLastNode=current
Current.NextNode=nothing
End if
RemoveFromBack=removeItem
End function
Public property Get Iterator() as variant
Dim iter as ClistIterator
Set iter=New ClistIterator
Iter.StartNode=mFirstNode
Set Iterator=iter
End property


عملکرد روال InsertAtFront :
a – فراخوانی IsEmpty برای تعیین خالی بودن لیست
b – اگر لیست خالی باشد mFirstNode و mLastNode به New ClsitNode اشاره می کنند .
c – اگر لیست خالی نباشد گره جدید توسط اشاره دادن tempNode به اولین گره لیست و سپس اشاره دادن mFirstNode به گره New ClsitNode و سپس اشاره دادن mFirstNode.NextNode به tempNode ساخته می شود .
d – تنظیم mFirstNode.Data با مقدار مورد نظر
عملکرد روال InsertAtBack :
a – فراخوانی IsEmpty برای تعیین خالی بودن لیست
b – اگر لیست خالی باشد mFirstNode و mLastNode به New ClsitNode اشاره می کنند .
c – اگر لیست خالی نباشد گره جدید توسط اشاره دادن tempNode به آخرین گره لیست و سپس اشاره دادن mLastNode به گره New ClsitNode و سپس اشاره دادن tempNode.NextNode به mLastNode ساخته می شود .
d – تنظیم mLastNode.Data با مقدار مورد نظر
عملکرد روال RemoveFromFront :
a – اگر لیست خالی باشد Null برگشت داده می شود .
b – اگر لیست خالی نباشد داده mFirstNode به removeItem اختصاص داده می شود .
c – اگر لیست فقط یک گره داشته باشد mFirstNode و mLastNode با Nothing مقدار دهی می شوند و گره از لیست حذف می شود .
d – اگر گره بیش از یک عضو داشته باشد mFirstNode برابر mFirstNode.NextNode می شود .
e – مقدار removeItem برگشت داده می شود .
عملکرد روال RemoveFromBack :
a – اگر لیست خالی باشد Null برگشت داده می شود .
b – اگر لیست خالی نباشد داده mLastNode به removeItem اختصاص داه می شود .
c – اگر لیست یک گره داشته باشد mFirstNode و mLastNode با Nothing مقدار دهی می شوند و گره از لیست حذف می شود .
d – اگر لیست بیش از یک گره داشته باشد متغیر current برابر mFirstNode می شود . سپس با استفاده از current روی گره های لیست حرکت می کنیم تا به گره ای برسیم که به آخرین گره اشاره می کند . سپس mLastNode را به گره ای که current به آن اشاره می کند قرار می دهیم و مقدار current.NextNode را Nothing می کنیم تا بعنوان آخرین گزه لیست معرفی شود .
e – مقدار removeItem برگشت داده می شود .

3 – کلاس ClistIterator : این کلاس برای حرکت روی گره های لیست و دستکاری هر گره بکار می رود . از حرکت کننده ها برای چاپ لیست و یا انجام دادن عملی بر روی هر عضو Clist می توان استفاده کرد . این کلاس دارای دو متغیر از نوع ClistNode به نامهای mBookmark و mFirstNode است . متغیر mFirstNode به اولین گره در Clist اشاره می کند و متغیر mBookmark موقعیت فعلی حرکت کننده بر روی Clist را نشان می دهد . روال Property Let StartNode این دو متغیر را مقدار دهی اولیه می کند . تابع NextItem اگر مقدار mBookmark برابر Null باشد ، Null برگشت می دهد و در غیراینصورت مقدار tempData را برابر mBookmark.Data و مقدار mBookmark را برابر mBookmark.NextNode قرار می دهد . تابع HasMoreItems اگر لیست دارای چندین عضو باشد True برمی گرداند . روال ResetBookmark حرکت کننده را به ابتدای لیست منتقل می کند .

Private mBookmark as ClistNode
Private mFirstNode as ClistNode
Public Property Let StartNode(Byval vNewValue as variant)x
Set mFirstNode=vNewValue
Set mBookmark=mFirstNode
End property
Public function NextItem()x
Dim tempData as varaint
If mBookmark Is nothing then
NextItem=Null
Else
TempData=mBookmark.Data
Set mBookmark=mBookmark.NextNode
NextItem=tempData
End if
End function
Public function HasMoreItems() as boolean
HasMoreItems=IIf(Not mBookmark Is nothing,True,False)x
End function
Public sub ResetmBookmark()x
MBookmark=mFirstNode
End sub

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:10 توسط محمد| |


ایجاد ساختارهای داده ای در ویژوال بیسیک - بخش اول
مقدمه :

ساختارهای داده ای از نظر تعداد اعضا به دو دسته استاتیک و دینامیک تقسیم می شوند . ساختارهای استاتیک مثل آرایه های یک بعدی و آرایه های دو بعدی ، تعداد اعضای آنها در زمان طراحی برنامه مشخص می شود و در طول اجرای برنامه ثابت است اما تعداد اعضای ساختارهای داده ای دینامیک در طول اجرای برنامه تغییر می کند . لیست پیوندی ( LinkList ) ، پشته ( Stack ) ، صف ( Queue ) و درختهای باینری ( Tree Binary) ، نمونه هایی از ساختارهای داده ای دینامیک هستند .
لیست پیوندی شامل مجموعه ای از عناصر داده ای است که اضافه و حذف اعضا در هر جای لیست ممکن است .
پشته یک ساختار داده ای مهم در کامپایلرها و سیستم های عامل است که عمل اضافه و حذف عناصر از ابتدای آن انجام می شود .
صف یک ساختار داده ای است که عمل اضافه کردن از انتها و عمل حذف کردن از ابتدای آن انجام می شود .
درختهای دودویی برای جستجوی بسیار سریع ، ذخیره سازی داده ها و کامپایل عبارات استفاده می شوند .

نوع داده Variant :

نوع داده variant برای متغیرهایی بکار می رود که بطور صریح نوع آنها تعریف نشده است مثال :
Dim value As Variant
این نوع داده می تواند هر نوع داده ای را در خود ذخیره کند . همچنین برای ایجاد ساختارهای داده ای مثل لیست های پیوندی ، صف ، پشته و درخت مناسب است .
نوع داده موجود در variant می توان توسط توابع VarType و TypeName تعیین کرد . تابع VarType یک مقدار صحیح برمی گرداند که نشان دهنده نوع ذخیره شده در variant است .
مثال :
Dim value as Variant
value=”Hello”x
در اینصورت مقدار بازگشتی ( VarType( value برابر 4 خواهد بود .
تابع TypeName یک رشته برمی گرداند که نشان دهنده نام نوع داده ذخیره شده در variant است .

اخذ حافظه بطور دینامیک Dynamic Memory Allocation :

برای ایجاد و نگهداری ساختارهای داده ای دینامیک بایستی در هنگام اجرای برنامه بتوان فضای بیشتری برای نگهداری داده های جدید بدست آورد . با استفاده از کلمه کلیدی New می توان در ویژوال بیسیک حاقظه دینامیک گرفت :
Set NewNode=New ListNode
که ListNode یک شی از ساختار داده ای مورد نظر ماست .

کلاسهای خود ارجاعی :

کلاس خودارجاعی نوعی کلاس است که دارای یک اشاره گر ( Pointer ) به یک شی از همان نوع کلاس باشد . برای مثال اگر کلاس ما به اسم ClistNode باشد و متغیر زیر را در آن تعریف کنیم ، این کلاس یک کلاس خود ارجاعی است :
Private mNextNode as ClistNode
از mNextNode برای لینک دادن اعضای یک ساختار داده ای دینامیک بهم استفاده می شود ( بعبارت دیگر گره زدن یک شی از کلاس ClistNode به یک شی دیگر از همان کلاس ) . شی های خودارجاعی می توانند به همدیگر لینک شوند و ساختارهای داده ای مثل لیست پیوندی ، صف ، پشته و درخت را ایجاد کنند .
شکل زیر دو شی خود ارجاعی را نشان می دهد که بصورت یک لیست بهم لینک شده اند . عبارت NULL بدین معنا است که شی خودارجاعی به شی دیگری اشاره نمی کند ( Nothing ) و نشان دهنده انتهای ساختار داده است .

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:9 توسط محمد| |


کار با فایل در ویژوال بیسیک - بخش سوم
سایر عملیات کار با فایل :

۱ - حذف فایل : برای حذف یک یا چند فایل از دستور Kill استفاده می شود :
Kill "C:\Temp\MyFile.txt"x
Kill "C:\Temp\*.txt"x

۲ - انتقال فایل : برای انتقال یک فایل از یک دایرکتوری به دایرکتوری دیگر از دستور Name استفاده می شود . مبدا و مقصد بایستی روی یک درایو باشند . اگر دایرکتوری مبدا و مقصد یکی باشد فایل تغییر نام داده می شود :
Name "C:\Temp\File1.txt" To "C:\Temp2\File2.txt"x

۳ - کپی کردن فایل : برای کپی کردن یک فایل از یک دایرکتوری به دایرکتوری دیگر از دستور FileCopy استفاده می شود :
FileCopy "\File1.txt\ To "C:\Temp\File2.txt"x

۴ - بدست آوردن تاریخ و زمان آخرین تغییر فایل و یا زمان ایجاد فایل : برای این کار از دستور FileDateTime استفاده می شود . ابتدا بایستی یک متغیر از نوع Variant تعریف کرده و سپس توسط این دستور تاریخ و زمان موردنظر را استخراج کنیم :
Dim FileInfo As Variant
FileInfo=FileDateTime("C:\Temp\MyFile.txt")x

۵ - استخراج طول فایل : برای بدست آوردن طول یک فایل بر حسب بایت از دستور FileLen استفاده می شود :
FileSize=FileLen("C:\MyFile.txt")x

۶ - تغییر صفت یک فایل : برای تغییر صفت یک فایل از دستور SetAttr استفاده می شود . پارامترهای این دستور عبارتند از :
0 : فایل معمولی
2 : فایل مخفی
4 : فایل سیستمی

SetAttr FileNumber,FileAttrib

مقابله با خطاهای کار با فایل :

در زمان کار با فایلهای احتمال زیادی وجود دارد که خطا بوجود آید . بنابراین بایستی در زمان کار با فایلها در صورت ممکن از روتینهای مقابله با خطا استفاده کنیم . شایع ترین خطاهای کار با فایل عبارتند از :

۵۲ : شماره یا نام فایل صحیح نیست
۵۳ : فایل پیدا نشد
۵۴ : حالت فایل صحیح نیست
۵۵ : فایل قبلاً باز شده
۵۸ : فایل از قبل وجود دارد
۵۹ : طول رکورد صحیح نیست
۶۱ : دیسک پر است
۶۲ : عبور از انتهای فایل
۶۳ : شماره رکورد صحیح نیست
۷۰ : دسترسی ممنوع است
۷۱ : دیسک آماده نیست
۷۶ : مسیر پیدا نشد

در هنگام مقابله با خطا بهتراست از یک ساختار Select-Case استفاده کنید :
Select Case Err
Case 71
MsgBox "Drive is Not Ready"x
.
.
.
End Select

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:7 توسط محمد| |


کار با فایل در ویژوال بیسیک - بخش دوم

خواندن از فایل :

1 - دستور Input : توسط دستورهای Input و Line Input می توان محتوای فایلهای متنی و باینری را خواند .
دستور Input به دو صورت بکار می رود :
Input #Filenumber,ReadData
ReadData=Input(Charnum,Filenumber)x
دستور اول کل یک فایل را خوانده و در متغیر ReadData قرار می دهد . دستور دوم ، تعداد Charnum بایت از فایلی با شماره Filenumber را خوانده و در متغیر ReadData قرار می دهد .
این دو دستور تمام کاراکترهای موجود در فایل را می خوانند . برای اینکه بتوان فایل را خط به خط خواند ، از دستور Line Input استفاده کنید :
Line Input #Filenumber,ReadData
البته از دستور Line Input بیشتر برای خواندن فایلهای متنی استفاده می شود زیرا ممکنست در فایل باینری هیچ کاراکتر انتهای خط ( CRLF ) وجود نداشته باشد و یکباره کل فایل خوانده شود .

۲ - دستور Get : از این دستور برای خواندن فایلهای باینری با دسترسی تصادفی ( Random Access ) استفاده میشود :
Get #Filenumber,[Recordnum%],ReadData
این دستور رکورد شماره Recordnum را از فایلی با شماره Filenumber می خواند و در متغیر ReadData قرار می دهد . علامت کروشه نشان می دهد که پارامتر Recordnum اختیاری است و در صورتیکه ذکر نشود داده ها از رکورد بعدی فایل ( جائیکه اشاره گر فایل آنجا قرار دارد ) خوانده می شوند .

نوشتن در فایل :

۱ - دستور Print : توسط این دستور می توان اطلاعاتی را در فایل قرار داد :
Print #FileNumber,WriteData
دستور فوق محتویات متغیر WriteData را در فایلی با شماره FileNumber می نویسد . بوسیله دستور Print می توان اطلاعات را بصورت خط به خط در فایل نوشت برای مثال :
Print #1,"Hello Visual Basic"+Vbcrlf
عبارت Vbcrlf نشان دهنده کاراکتر انتهای خط ( CRLF ) در ویژوال بیسیک می باشد .

۲ - دستور Put : این دستور برای نوشتن داده ها در فایلهای باینری با دسترسی تصادفی بکار می رود :
Put #FileNumber,[Recordnum],WriteData
این دستور محتویات متغیر WriteData را در رکورد شماره Recordnum قرار می دهد .

تعیین محل رکورد در فایلهای با دسترسی تصادفی :

برای منتقل کردن اشاره گر فایل به یک رکورد در یک فایل باینری با دسترسی اتفاقی ، از دستور Seek استفاده می شود . این دستور محل یک بایت را در فایل می گیرد و اشاره گر فایل را در آنجا قرار می دهد بنابراین دستورات Put و Get می توانند با این رکورد کار کنند :
Seek #FileNumber,RecordNumber

تشخیص انتهای فایل :

برای اینکه متوجه شویم به انتهای یک فایل رسیده ایم از دستور EOF استفاده می کنیم . این دستور یکی از مقادیر True یا False را بر می گرداند که نشان می دهد به انتهای فایلرسیده ایم یا نه . از این تابع در حلقه های Do-While استفاده می شود :
Do While Not (EOF(FileNumer))x
.
.
.
Loop
حلقه فوق تا زمانیکه فایل موردنظر به انتها نرسیده باشد اجرا خواهد شد .

بدست آوردن طول یک فایل :

بوسیله دستور LOF می توان طول محتویات یک فایل را بدست آورد :
FileSize=LOF(FileNumber)x

بدست آوردن محل اشاره گر فایل :

توسط دستور Loc می توان محل جاری اشاره گر فایل را بدست آورد . اجرا شدن این دستور محل اشاره گر را تغییر نمی دهد :
FilePosition=Loc(FileNumber)x

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:6 توسط محمد| |

کار با فایل در ویژوال بیسیک - بخش اول
مقدمه

بعلت عدم وجود اشاره گر در ویژوال بیسیک عملیات کار با فایلها در آن نسبتاً ساده می باشد .
بطور کلی فایلها بر دو نوع هستند :
1 - فایلهای متنی Text File : این فایلها فقط شامل کاراکترهای اسکی و برخی کاراکترهای خاص مانند انتهای خط و انتهای فایل هستند .
۲ - فایلهای باینری Binary File : شامل هر نوع کاراکتری می توانند باشند و کاربردهای گسترده ای دارند مانند بانک های اطلاعاتی ، فایلهای اجرائی ، فایلهای گرافیکی و غیره
ویژوال بیسیک می تواند با هر دو نوع فایل کار کند .

چگونگی باز کردن فایلها

قبل از اینکه بتوان عملیات ورودی/خروجی را روی یک فایل انجام داد ابتدا بایستی آنرا باز کرد . باز کردن فایلها در ویژوال بیسیک توسط دستور Open انجام می شود . فرمت کلی این دستور بصورت زیر است :

Open filename [For mode] [Access access][lock] As [#]filenumber [Len=reclen]x


[ پارامترهای داخل کروشه اختیاری هستند . ]
filename نام فایلی است که می خواهیم آنرا باز کنیم .
mode حالت باز کردن فایل است . این حالتها عبارتند از :
- Input : فایل بعنوان ورودی باز می شود .
- Output : فایل بعنوان خروجی باز می شود .
- Binary : فایل از نوع باینری باز می شود .
- Append : فایل طوری باز می شود که بتوان به انتهای آن چیزی اضافه کرد .
- Random
access نوع دسترسی به فایل را مشخص می کند . انواع دسترسیها عبارتند از :
- Read : خواندن فایل
- Write : نوشتن در فایل
- ReadWrite : خواندن و نوشتن فایل
lock نوع دسترسی سایر برنامه ها به این فایل را مشخص می کند . انواع دسترسیها عبارتند از :
- Shared : دسترسی اشتراکی
- Lock Read
- Lock Write
- Lock Read Write
filenumber عددی است که ویژوال بیسیک از آن برای دسترسی به فایل استفاده می کند .این عدد بایستی برای هر فایل منحصر بفرد و بین ۱ تا ۵۱۱ باشد . برای بدست آوردن اولین شماره آزاد می توان از تابع FreeFile استفاده کرد .
reclen :طول بافر فایل است . این عدد بایستی از ۳۲۷۶۷ کو چکتر باشد .

در صورتی که فایلی که توسط filename مشخص شده وجود نداشته و فایل برای Append ، Binary ، Output و یا Random باز شده باشد در اینصورت یک فایل جدید با این نام ساخته می شود .
در صورتی که فایل بصورت باینری باز شده باشد پارامتر Len نادیده گرفته می شود .

چگونگی بستن فایل

پس از پایان کار با فایل برای بستن آن از دستور Close استفاده می کنیم . فرمت این دستور بصورت زیر است :

Close #filenumber


دستور Close بدون هیچ پارامتری تمام فایلهای باز را می بندد .

کار با دایرکتوری

۱ - گرفتن Dir : توسط دستور Dir می توان نام فایلهای موجود در یک دایرکتوری را بر اساس پارامترهایی که به آن می دهیم پیدا کنیم . برای مثال :

Myfile=Dir$("c: ext*.txt)"x


دستور فوق نام اولین فایل موجود در دایرکتوری C:TEXT را که پسوند آنها txt باشد در متغیر Myfile قرار می دهد . اگر دستور فوق را بدون پارامتر مجدداً اجرا کنیم نام دومین فایل برگرداننده می شد و الی آخر
Dir دارای یک پارامتر اختیاری است که نوع فایلهای مورد نظر را نیز می توان با آن مشخص نمود . مثال :

Myfile=Dir$("c: ext*.txt",vbNormal)x


مقادیر ممکن این پارامتر عبارتند از :
vbNormal ، vbHidden ، vbSystem ، vbDirectory
۲ - تغییر دایرکتوری : برای تغییر دایرکتوری از دستور ChDir استفاده می شود مثال :

ChDir "c:windowssystem32"x


۳ - تغییر درایو : برای تغییر درایو از دستور ChDrive استفاده می شود مثال :

ChDrive "E:"x


۴ - ساخت دایرکتوری : برای ایجاد دایرکتوری جدید از دستور MKDir استفاده می شود مثال :

MKDir "c:MyFolder"x


۵ - حذف دایرکتوری : برای حذف دایرکتوری از دستور RmDir استفاده می شود مثال :

RmDir "C:MyFoler"x

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:4 توسط محمد| |

قسمت دوم 
ساخت اولین برنامه
برای درک آسان بودن نرم افزار بیسیک
الان می خواهم برایتان یک برنامه ساده بنویسم که فقط با چند خط ساده نوشته شده است .
چون الان تازه اول کار هستیم از توابع و کارهای دیگرش شروع نمی کنم.
ابتدا 2 عدد Taxtboxگزاشته از جعبه ابزار
کد زیر را در Text1 قرار داده.
If Text1.text="majid" Then
Text2.text="rahimi"
End If
کد بسیار راحتی بود.
خط اول گفتیم که اگر در Text1 نوشتند Majid
د خط دوم نوشتیم در Text2 بنویسد Rahimi
و در آخر گفتیم پایان
درک کد بالا باید آسان باشد.
ما از دستور If استفاده کردیم که در درسهای آینده خواهم گفت.
دستور بالا یک آموزش بود برای اینکه به شما نشان بدهیم که ویژوال بیسیک چه قدر آسان می باشد.

معرفی بری فراخوانی کامپننت ها یا شیئی ها که در قسمت toolbar میتوانید دید.
البطه خودتان هم می توانید چنین شیئی یا کامپوننت های بسازید ولی الان وقتش نیست در قسمت های بعدی آموزش می دهم.
با زدن کلید ctrl+t یا از پنجره projectبر روی coomponntes کلیک کرده .
پنجره componntes قابل مشاهده است. پنجره control کنترل ها یا کامپوننت های از قبل تعریف شده برای کار است که با کلید بر روی هر کدام اعمال خواصی را انجام می دهد.
و با کلیک بر روی browse..امکان انتخاب از داخل هارد را امکان پذیر می باشد.
فرمت این کامپوننت های ocxمی باشد.
insertabel قسمت مخصوص کامپوننت های برنامه های مختلف می باشد . مانند ماکرومدیا فلش و.....
که با انتخاب هر کدام می توانید مثالا می خواهید یک فایل فلش را در برنامهه خود بگزارید. به وسیله این کامپوننت های امکان پذیر است.مانند گزاشتن فیلم. صدا. تصاویر متحرک و ...... . . . .
که با انتخاب هر کدام در کنار toolbar نمایان می شود

نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:2 توسط محمد| |

آشنایی با ویژوال بیسیک 6 
تاریخچه ویژال بیسیک.
با شناختی که از تاریخچه ویژوال بیسیک بدست می آورید راحت تر می توانید از آن استفاده کنید.
شرکت مایکروسافت ویژوال بیسیک را براساس یک زبان برنامه نویسی به نام بیسیک که برای مبتدیان نوشته شده است ساخت.
زبان ویژوال بیسیک بیشتر از 35 سال به اشکال مختلف رایج بوده. در واقع طراحان این زبان می خواستند یک زبان برنامه نویسی برای استفاده مبتدیان طراحی کنند.برنامه نویسان جدید می توانند با استفاده ازبیسیک به سرعت به شرع برنامه نویسی های حرفه ای با زبان های cobol .fortran . assembler
در مقایسه به بیسیک کار بیشتری نیاز داشت.
طبیعت بصری ویژوال بیسیک
دیدید که ویژال بیسیک 6 چیزی بیشتر از یک زبان برنامه نویسی است. از ویژوال بیسیک در نام آن visualبه معنای بصری یا محیط نمایشی . است.
کار با ویژال بیسیک 6
در اولین بار که برنامه را باز می کنید با پنجره new project روبه رو می شوید در این قسمت
نوع فورم خود را انتخاب کرده ماننده activex|standardو....
این پنجره شامل 3 قسمت بوده
New:در این پنجره امکان انتخاب فورم مورد نظر شما امکان پذیر می باشد.
Existing:در این پنجره امکان انتخاب project های مختلف که در مکانهای مختلف ذخیره یا... امکان انتخاب می باشد.
Recent:در این قسمت هر projectرا که ذخیره می کنید به صورت دسته ای جمع می شود حالا یک فایلی
در درایو Dباشد حالا چه در درایو c.
DON.T SHOW THIS DIALOG IN THE FUTURE
این قسمت جلو گیری از باز شدن پینجره NEW PRIJECT می باشد.
HELP:از این قسمت وقتی امکان استفاده می باشد که نرم افزار MSDN را نصب کرده باشید.
معرفی قسمت های بیسیک.
نوار ابزار:TOOLBAR:نوار ابزار VB زیر منو قرار دارد. ویژال بیسیک کلا چهار نوار ابزار دارد:
STANDARD:این نوار ابزار زیر منو ظارهر است و پیش فرض است.
DEBUG:وقتی از ابزارهای رفع اشکال برای ردیابی و اصلاح اشکالات استفاده می کنید. این نوار ابزار ظاهر می شود.
EDIT:این نوار ابزار برای تنظیم کردن اشیاء بر روی فرم می باشد
FORM EDITOR:این نوار ابزار برای تنظیم کردن اشیاء بر روی فرم می باشد.
جعبه ابزار:TOOLBOX:
در این پنجره تمامی شئعی های مختلف برای کار بر روی فرم هستند و حتا امکان اضافه کردن به این پنجره ها می باشد.
پنجرهPROJECT:در این پنجره فرم های انتخبی شما با هر گروه و هر فرم مشخص شده است.
پنجرهPROPERTISE:
این پنجره امکان تنضیمات لازم برای هر شیئی را مشخص می کنید.

نوشته شده در سه شنبه 10 خرداد 1390برچسب:اموزش ویژوال بیسیک,ساعت 18:21 توسط محمد| |


Power By: LoxBlog.Com